package 笔试;

import java.util.Scanner;

/**
 * @Date 2024/10/24 20:24
 * @description: 超聚变笔试
 * .
 * @Author LittleNight
 */
public class chaojubian {

    // todo 百分之90
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int ret = 0;
            // 先只有9的情况
            if(n % 9==0) {
                System.out.println(n / 9);
            }else {
                // 9x + 4y 的情况
                int count = 1, t = n / 9;
                while(n >= 9) {
                    if((n - 9 * t) % 4 == 0) {
                        // 最多的 9 和 最少的4
                        ret = t + (n - 9 * t) / 4;
                        System.out.println(ret);
                        return;
                    }
                    t--;
                }
                // 9 + 4不成立
                // 4的情况
                if(n % 4 == 0) {
                    System.out.println(ret);
                }else {
                    // 所有都不成立
                    System.out.println("-1");
                }
            }
        }
    }


    // 百分之60解法
    public static void main3(String[] args) {
        // 贪心解法
        // 小明需要n个钉子, 但是五金店没有散钉子卖,只有两种盒装包装的,
        // 一种包装4颗, 一种包装有9颗, 请问小明最少需要买多少盒钉子才能正好买够n颗? 如果不能刚好n颗, 则输出-1
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();
            int ans = 0;
            while (n > 0) {
                if (n >= 9) {
                    ans += 1;
                    n -= 9;
                } else if (n >= 4) {
                    ans += 1;
                    n -= 4;
                } else {
                    ans = -1;
                    break;
                }
            }
            System.out.println(ans);
        }
    }



    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String s1 = in.next();
            String s2 = in.next();
            char[] c1 = s1.toCharArray(), c2 = s2.toCharArray();
            int n1 = s1.length(), n2 = s2.length();
            int i = 0, j = 0;

            // 找到两个字符串的最长公共子序列

        }
    }
    // 找到两个字符串的最长公共子序列
    public static int lcs(char[] c1, char[] c2) {
        int n1 = c1.length, n2 = c2.length;
        int[][] dp = new int[n1 + 1][n2 + 1];
        for (int i = 1; i <= n1; i++) {
            for (int j = 1; j <= n2; j++) {
                if (c1[i - 1] == c2[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                } else {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
                }
            }
        }
        return dp[n1][n2];
    }

}
